package com.shujia.wyh.day10;

import java.util.Comparator;
import java.util.TreeSet;

/*
    比较器排序：
 */
public class TreeSetDemo3 {
    public static void main(String[] args) {
        //如果是比较器排序，元素类型不需要实现什么接口，只需要在创建集合对象的时候，传入比较器对象，编写比较的逻辑即可
        TreeSet<Dog> treeSet = new TreeSet<>(new Comparator<Dog>() {
            @Override
            public int compare(Dog o1, Dog o2) {
                //o1 -- 待插入的元素
                //o2 -- 已经存在树中的元素
                //主要条件：年龄从小到大排序
                int i = o1.getAge() - o2.getAge();
                //年龄一样，姓名不一定一样
                int i2 = (i == 0) ? o1.getName().compareTo(o2.getName()) : i;
                return i2;
            }
        });

        Dog d1 = new Dog("小黑", 6);
        Dog d2 = new Dog("小白", 1);
        Dog d3 = new Dog("大黄", 3);
        Dog d4 = new Dog("大白", 5);
        Dog d5 = new Dog("小花", 4);
        Dog d6 = new Dog("小白", 1);
        Dog d7 = new Dog("哮天犬", 1);

        treeSet.add(d1);
        treeSet.add(d2);
        treeSet.add(d3);
        treeSet.add(d4);
        treeSet.add(d5);
        treeSet.add(d6);
        treeSet.add(d7);

        System.out.println(treeSet);
    }
}
